package cn.com.miao.lynx.plugin.push.service;

import cn.com.miao.lynx.common.core.excpetion.LynxException;
import cn.com.miao.lynx.plugin.push.model.MessagePushBody;
import cn.com.miao.lynx.plugin.push.model.PushClientConfig;

/**
 * MessagePushService
 *
 * @title: MessagePushService
 * @description:
 * @author: dengmiao
 * @create: 2020-01-14 14:04
 **/
public interface MessagePushService {

    /**
     * execute push message
     * @param messagePushBody request body
     * @throws LynxException Exception
     */
    void executePush(MessagePushBody messagePushBody) throws LynxException;

    /**
     * get current thread push client name
     * @return push client name
     * @throws LynxException Exception
     */
    String getCurrentPushClientName() throws LynxException;

    /**
     * get current thread push client
     * @return push message client
     * @throws LynxException Exception
     */
    PushClientConfig getCurrentPushClient() throws LynxException;
}
